perm filename ARPA.74A[DOC,TOB] blob sn#125609 filedate 1974-10-14 generic text, type T, neo UTF8
00100	This  progress  report  covers  the  period from July 1, 1973 to July
00200	1,1974.
00300	
00400		MANIPULATION
00500	
00600	In  previous  work,  Scheinman  []  developed  adequate   manipulator
00700	hardware,  and  Paul  [] developed software for arm control utilizing
00800	touch (one point per finger with 8 grams sensitivity) and force (from
00900	joint motor current, about 12 oz sensitivity) During the past year, a
01000	second arm was made operational, and the software  was  augmented  to
01100	include  two  arm  manipulation.  This is a first use of two arms, to
01200	our knowledge.
01300	
01400	Paul and Bolles [] had previously demonstrated the utility of our arm
01500	system  in  the  assembly of a water pump.   Touch, force, tools, and
01600	vision were used. A film showing the assembly was made  [].   Several
01700	new  tasks  were  performed.  Finkel programmed throwing objects into
01800	bins sorted on size.  Paul programmed automatic assembly of a  hinge,
01900	using  two arms.  Bolles programmed automatic tool changing; a set of
02000	socket tools for the automatic screwdriver are kept in a tool holder.
02100	The  arm  automatically  removes  one  tool from the drive and mounts
02200	another.     A subassembly of the two stroke gasoline engine has been
02300	performed.   Bolles  carried  out  assembly  of the piston-crankshaft
02400	subassembly.     A short film showing execution of these tasks is  in
02500	preparation.
02600	
02700	These   tasks  were  carried  out  in  the  hand  language  WAVE  [].
02800	Programming in a hand language  gave  a  generality  which  might  be
02900	described  as:   given  that we had carried out one task, programming
03000	assembly of a  similar  object  would  be  simple.      For  example,
03100	programming  assembly  of  a  generator  would require about 10 hours
03200	work, following the pump assembly.  A set of  macros  were  developed
03300	which were applicable among a variety of tasks:  put a pin in a hole,
03400	insert a screw.  About 8 hours are required to program a macro of the
03500	complexity of inserting a screw. The hand language has made it simple
03600	to teach students how to program the  arm.   In  a  robotics  course,
03700	students  programmed "sword in stone", inserting a shaft into a hole.
03800	The language WAVE is on the level of assembler  code.   The  language
03900	was  extended  to  include  two  arm  control  and transformations of
04000	position variables to allow a program written for one table  position
04100	to  be  executed  at  other table positions, for those assemblies for
04200	which some parts are not in fixed positions.
04300	
04400	Paul, Finkel, Bolles and Taylor have begun a new hand language,  HAL.
04500	The  effort  began  as  a  higher  level language version of WAVE, to
04600	include coordinated motion of two arms.  The design was broadened  to
04700	include  some  strategy  generation.     The system is made partially
04800	model- based (versus procedure-based  as  WAVE,  ALGOL,  etc).   Some
04900	degree  of  automatic  generation  of  sequences  for non-independent
05000	operations whose order is important, has been included in the design.
05100	In  order  to  carry on the next stage of generalization beyond WAVE,
05200	the system must maintain models of its world.  For example,  to  take
05300	contingency  action,  simple  branching  may  suffice.      For those
05400	contingencies  which  may  be  within  system  capabilities  but  not
05500	anticipated, the system must know when corrective action has restored
05600	the desired state.     We regard this system  as  a  first  level  of
05700	model-based  system.   A  major technical advance will be coordinated
05800	two arm motion,  as  opposed  to  independent  two  arm  motion.   An
05900	important  part of the design process has been to express a number of
06000	tasks in the new language, Gedanken experiments. The  design  of  HAL
06100	was  three-fourths  completed  during  the  period  of  this progress
06200	report.
06300	
06400	New work has gone into touch sensor development.  A new  sensor  with
06500	adequate  sensitivity and small size was built and tested by Perkins.
06600	The sensor seems adequate for use in  task  execution,  but  requires
06700	more development in packaging and mounting on usable fingers.
06800	
06900	A  new collision avoidance package has been programmed by Widdoes [].
07000	The package finds a collision-free path for the first three joints of
07100	the  arm,  using  an interesting strategy.     The previous collision
07200	avoidance program [] used a very local search around objects and  was
07300	very time-consuming.
07400	
07500	During the period covered in this report, we have begun conversion of
07600	arm hardware to a PDP-11/45 and begun converting to  a  new  hand/eye
07700	table which allows room for two arm manipulation.
07800	
07900	
08000			VISION
08100	
08200	The theme of our work in visual perception  of  complex  objects  has
08300	been  DESCRIPTION  AND  NOT CLASSIFICATION.   We ahve concentrated on
08400	building  up  capabilities  for  generating  structured  descriptions
08500	useful  in a rich universe of objects. This project has been extended
08600	by  Nevatia  [],  with  programs  which  recognize  objects  of   the
08700	complexity  of  a  doll,  glove, toy horse, or hammer.   The work has
08800	included new, stable hardware for the laser triangulation system  [].
08900	The programs use depth data from the laser system, find boundaries of
09000	continuous surfaces, and make descriptions of armlike parts based  on
09100	"generalized  cones",  according  to  a representation by Binford [].
09200	Other groups have begun to use such representations; for  example,  a
09300	special  case  of that representation has been used by Hollenbach [].
09400	The programs then make complete structured descriptions of objects as
09500	a part/whole graph of parts and relations of parts at joints. Compact
09600	summary descriptions are abstracted from complete object descriptions
09700	and  used  to  index  into  a  structured  visual memory of models of
09800	previously seen objects to locate a subclass of model similar to  the
09900	test object. The index procedure limits comparison of the test object
10000	description to relatively few models from memory, even with  a  large
10100	visual  memory  of many objects (although only about six objects were
10200	used).  Models in memory were descriptions made  by  the  program  of
10300	previously  seen  objects,  sometimes  modified by hand. The learning
10400	ability of such a system is  clear.   An  important  feature  of  the
10500	description  matching  process  is  that  it  depends  on  generating
10600	structured symbolic descriptions of differences between  test  object
10700	description and the model.
10800	
10900	The  descriptions  themselves are intuitively familiar for humans, so
11000	that the decisions of the program are easy to understand  and  debug.
11100	Although  a  great  deal  more  work is necessary for that system, it
11200	represents a first and  significant  step  in  such  description  and
11300	recognition, particularly since it can tolerate moderate obscuration.
11400	The same techniques are applicable to edge images from TV data;  they
11500	give good descriptive ability for that domain.  However, that is only
11600	a small part of the necessary system for analysis of  TV  images  and
11700	although  useful,  in  no  way  resembles  a solution to that complex
11800	problem.
11900	
12000	It is difficult for humans  to  perform  manipulation  tasks  from  a
12100	single  TV image, without stereo.  We intend to make considerable use
12200	of stereo in applications of vehicle navigation and  visual  feedback
12300	for  assembly.  Hannah  [] has demonstrated some techniques of stereo
12400	matching for stereo pairs with moderate  stereo  angle,  10  degrees,
12500	without calibration information.  By matching a minimum of six points
12600	in the two images, it was possible to obtain the relative calibration
12700	of  the  two  cameras.    Further  search  was limited by calibration
12800	informaion.   Techniques were developed to match corresponding  areas
12900	in  outdoor pictures from features including color, mean and variance
13000	of intensity.  A program was able to define regions bounded by  depth
13100	discontinuities.   Thomas and Pingle [] have appplied motion parallax
13200	to simple scenes.   They limit attention to a few points  defined  by
13300	variance  or edge measures.  These points are tracked as the scene is
13400	rotated on a turntable, equivalent to moving the camera.  The program
13500	requires  only  about  1 second per frame, using the SPS-41 computer.
13600	Although the research was performed on scenes of blocks,  it  is  not
13700	limited  to  such  scenes.    The  mechanism  for selecting points of
13800	interesst would be  inadequate  for  scenes  with  texture,  however.
13900	Ganapathy  [] has developed techniques for wide angle stereo matching
14000	in scenes of blocks. These programs use a variety  of  conditions  of
14100	the form that planes remain planar under matching.
14200	
14300	Bullock  []  has  made  a systematic study of available operators for
14400	description of texture, and made a library of standard textures.  His
14500	informal   conclusions  are  that  spatial  domain  descriptions  are
14600	necessary, and that known techniques are very weak.
14700	
14800	We have continued our study of techniques for visual feedback to deal
14900	with  scenes  with  realistic  contrast (not just black vs white) and
15000	with realistic complexity (curved objects).  Perkins []  has  made  a
15100	program  which  finds  corners for visual feedback in block stacking.
15200	Although block stacking itself is of little interest, the program  is
15300	interesting  for  its  ability  to  function  with realistic contrast
15400	levels (no special preparation of  scene)  and  interesting  for  its
15500	global  edge  finding  strategy.   Perkins  also made a program which
15600	found elliptic curves among edge points from the Hueckel operator [].
15700	The program was able to identify cylinders.
15800	
15900	Binford  has  made  a  beginning  on  a language for vision research.
16000	Previously, the laboratory has built a hand/eye monitor system []  to
16100	systematize  cooperating routines at a job level; a library of simple
16200	procedures has been implemented.   It has been  found  that  the  job
16300	level is too coarse to be useful for accomplishing our objectives: to
16400	allow research to build  on  previously  built  data  structures  and
16500	modules;  to  allow  a  common  vocabulary.     The new effort is not
16600	predominantly a system software  effort,  but  a  scientific  effort,
16700	aimed  at  providing a language in which strategies can be expressed.
16800	Our experience is that it is difficult for humans to program in  LISP
16900	or SAIL, and that we cannot reasonably expect strategy programs to be
17000	expressed at that low  level  of  language.   The  language  will  be
17100	embedded  in  SAIL.  Our previous work in representation of shape has
17200	been significant; now we are extending the study of representation to
17300	visual program structure, including intermediate internal structures.
17400	Our experience with the hand language is  that  this  is  a  valuable
17500	step.